educationfandomcom-20200222-history
PWr - Systemy plików
System plików – metoda przechowywania plików, zarządzania plikami, informacjami o tych plikach, tak by dostęp do plików i danych w nich zgromadzonych był łatwy dla użytkownika systemu. Systemy plików stosuje się dla różnych nośników danych, takich jak dyski, dyskietki, a także w strumieniach danych, sieciach komputerowych, pamięciach. We współczesnych systemach operacyjnych bezpośrednie operowanie na danych na dysku zarezerwowane jest tylko dla systemu operacyjnego, aplikacje mają dostęp tylko do operacji na plikach za pośrednictwem systemu operacyjnego i mają zabroniony bezpośredni dostęp do nośnika danych. Z formalnego punktu widzenia system plików to reguły umieszczania na nośniku abstrakcyjnych danych oraz informacji umożliwiających przechowywanie tych danych, łatwy i szybki dostęp do informacji o danych oraz do tych danych, manipulowania nimi a także sposobach usuwania ich. Większość systemów operacyjnych posiada własny (natywny) system plików, rozwijany równolegle z nim (np. FAT w DOS-ie, NTFS w Microsoft Windows NT lub ext/ext2/ext3 i ReiserFS/Reiser4 w Linuksie), ze względu na pewne specyficzne właściwości nadawane plikom (np. atrybut wykonywalności pliku). Same systemy operacyjne (w szczególności Unix i jego pochodne) potrafią obsługiwać wiele systemów plików. Organizacja danych Nośniki danych, takie jak dyski twarde, dyskietki posiadają blokową strukturę danych, znaczy to, że dane są w nich przechowywane w postaci bloków. Blok musi być w całości zapisywany i odczytywany. Bloki te nazywane są sektorami. W przypadku dysków i dyskietek wszystkie sektory mają taką samą wielkość (przeważnie 512 bajtów). Bloki tworzą strukturę liniową: Systemy operacyjne łączą bloki w klastry. Klaster składa się z kilku bloków (w nowszych systemach może to być 8 lub więcej bloków). Dyskowy system plików część pamięci wykorzystuje na tzw. sektor rozruchowy (boot sector), który nie stanowi zasadniczej części systemu plików i jest używany do rozruchu systemu. Ponadto systemy plików przechowują listy wszystkich klastrów (oraz informacje do których plików one należą) w tzw. tablicach alokacji. Przykład alokacji w linuksowym systemie plików ext2: Struktura grupy bloków (n - liczba bloków): Podstawowe operacje Jeżeli program chce wykonać jakąś operację na pliku robi to poprzez system plików. W systemie Unix oraz jego pochodnych takie operacje realizowane są za pomocą wywołań systemowych. Wywołania te są przychwytywane przez wirtualny system plików (VFS), odpowiednio przetwarzane i kierowane do zasadniczego systemu plików. Zastosowanie wirtualnego systemu plików podowuje, że program stosuje te same wywołania systemowe niezależnie od systemu plików. Do najbardziej podstawowych wywołań systemowych należą: * otwieranie pliku (open) * zamykanie pliku (close) * tworzenie pliku (create) * usuwanie pliku (unlink) * tworzenie katalogu (mkdir) * usuwanie katalogu (rmdir) * czytanie z pliku (read) * pisanie do pliku (write) Hierarchia systemu plików Prymitywne systemy plikowe posiadały jedną listę plików wchodzących w skład systemu plików. W miarę postępu systemy plików zostały unowocześnione i współczesne systemy plików oprócz głównej listy (katalogu głównego) zawierają także podlisty (podkatalogi) które również mogą zawierać dalsze podlisty (podkatalogi). W ten sposób rozwinęło się pojęcie katalogów nadrzędnych oraz katalogów podrzędnych. Katalog, w którym znajduje się plik jest nadrzędny (bezpośrednio) względem tego pliku. Katalog jest podrzędny (bezpośrednio) względem innego katalogu w którym się znajduje. W ten sposób powstało pojęcie drzewiastej hierarchi systemu plików, w której każdy katalog może zawierać podkatalogi, które mogą zawierać dalsze podkatalogi. Powstaje w ten sposób struktura, która wygląda jak "odwrócone drzewo". Format podanej ścieżki zależy od systemu operacyjnego. W większości systemów (Unix, Linux, Mac OS) katalog jest reprezentowany przez ukośnik (ang. slash "/"). W przypadku systemów Windows oraz DOS katalog jest reprezentowany przez lewy ukośnik (ang. backslash "\"). Rodzaje systemów plików * Dyskowy system plików - "normalny" system plików pozwalający na zarządzanie danymi na stacjonarnych nośnikach danych, takich jak twarde dyski. Każdy system posiada swój własny system plików (np. Linux - ext2, Windows NT - NTFS itd.). * Sieciowy system plików - w zasadzie jest to protokół umożliwiający przesyłanie poleceń do serwera przez sieć oraz wykonywanie operacji na odległość. Informacje są z powrotem przekazywane z serwera do klienta. Dzięki takiemu rozwiązaniu użytkownik nie widzi żadnej różnicy między pracą na sieciowym systemie plików a pracą na lokalnym systemie plików. Najbardziej znane to NFS, Coda, AFS (System plików Andrew'sa), SMB oraz NCP (Novell'a). * Specjalne systemy plików (Wirtualne systemy plików) - nie umożliwiają zarządzania danymi, np. system /proc (w Linuksie) dostarcza interfejsu, który umożliwia dostęp do niektórych struktur jądra. * Systemy oparte na bazie danych - systemy plików, w których pliki są identyfikowane na podstawie swojej charakterystyki (np. autora, typu czy tematu, którego dotyczą) - jak w bazach danych. * Systemy dziennikujące (lub księgujące, ang. journaling) - systemy z mechanizmem księgującym, zwiększającym bezpieczeństwo danych i umożliwiającym szybkie przywrócenie sprawności systemu po awarii. Mechanizm taki posiadają nowsze systemy plików (np. NTFS lub ext3). Popularne systemy plików * Unix/Linux ** ext (pochodna miniksa) ** ext2 (second extended file system, ulepszony ext) ** ext3 (bazujący na ext2, z księgowaniem) ** ReiserFS (Linuksowy system plików z księgowaniem autorstwa Hansa Reisera) ** Reiser4 ** JFS (system plików IBM'a) ** XFS * DOS ** FAT (FAT12) (Tablica alokacji plików, dyskietkowy) ** FAT16 ** FAT32 * Windows ** VFAT (Virtual FAT) ** NTFS (system plików z księgowaniem pod Windows NT i nowsze) ** WinFS (system plików oparty na bazie danych) * Amiga ** OFS (Amiga Old File System) ** Amiga Fast File System (FFS) * Apple/Macintosh ** Apple DOS ** Apple SOS ** Apple ProDOS ** MFS (Macintosh File System) ** HFS (Hierarchical File System) ** HFS+ ** HFSX * OS/2 ** HPFS (High Performance File System) ** JFS (Journaled File System) * BeOS ** BeFS (Be file system) ** OpenBFS * CD-ROM/DVD ** ISO9660 ** Rockridge (rozszerzenie ISO9660 dla Unix) ** Joliet (rozszerzenie standardu ISO9660 firmy Microsoft) ** UDF (Universal Disk Format) * Inne ** AtheOS FS (AFS) (system plików systemu operacyjnego AtheOS, pochodna BeFS) Przykłady Fat32 Odmiana systemu plików FAT, po raz pierwszy zastosowany w systemie operacyjnym Windows 95 OSR2, następca FAT16. FAT32 (który pomimo nazwy sugerującej 32 bity, używa tylko 28 bitów) pozwalając teoretycznie na opisanie 268.435.438 klastrów, co umożliwiałoby użycie go nawet na wieloterabajtowych dyskach twardych. W rzeczywistości, z powodu ograniczeń wbudowanych w program użytkowy "ScanDisk" firmy Microsoft, który obsługuje maksymalnie 4.177.920 klastrów, wielkość partycji obsługiwanej w tym systemie plików nie może przekroczyć 124,55 gigabajtów, co nie pozwala na jego użycie z nowymi generacjami twardych dysków. Więcej informacji na ten temat można znaleźć na stronie Microsoftu 1. Maksymalny rozmiar pliku to 4 GB - 1 B (232 B - 1 B). W momencie powstania, był on wyraźnie lepszy od swojego poprzednika, FAT16, jednak z powodu swoich ograniczeń został zastąpiony systemem NTFS w późniejszych systemach Microsoftu, jak np. Windows XP. W Windows XP można korzystać z FAT, można także zainstalować go na takiej partycji, jednak systemowe narzędzia nie potrafią utworzyć partycji FAT32 o rozmiarze większym niż 32 GB. Aby utworzyć partycję FAT o rozmiarze większym niż 32 GB, należy posłużyć się alternatywnym narzędziem do partycjonowania lub systemem Windows 95OSR2/98. ext2 ext2 (second extended filesystem) to drugi rozszerzony system plików dla systemu Linux. Ext2 rozwinął się z rozszerzonego systemu plików ext. Rozpoznanie uszkodzenia systemu plików (np. po załamaniu się systemu) nastepuje przy starcie systemu, co pozwala na automatyczne naprawianie szkód za pomocą oddzielnego programu (e2fsck), uszkodzone pliki zapisywane są w katalogu lost+found. System plików ext2 zawiera mechanizm zapobiegający znacznej fragmentacji dysku. Ext2 przy domyślnym rozmiarze bloku (4 kB) obsługuje partycje o wielkości do 16384 GB i pliki o wielkości do 2048 GB. Nazwy plików mogą mieć 255 znaków długości. Ważnym elementem systemu ext2 są wolne pola w strukturach danych - to dzięki nim między innymi możliwa jest konwersja "w locie" do systemu ext3 - wykorzystuje on po prostu część z nich do przechowywania swoich danych. NTFS NTFS (New Technology File System) to standardowy system plików systemu Microsoft Windows NT i jego następców (Windows 2000, Windows XP, Windows Server 2003, Windows Vista). NTFS pochodzi od HPFS, który został opracowany przez Microsoft i IBM dla systemu OS/2 na miejsce starszego FATu, używanego w MS-DOS. HPFS posiada kilka ulepszeń w porównaniu do FATu, takich jak wsparcie dla metadanych, użycie zaawansowanych struktur w celu polepszenia, wiarygodności i wydajności (zarówno w odniesieniu do szybkości jak i wymaganej pojemności dyskowej). NTFS zawiera wszystkie te ulepszenia oraz dodatkowo listy kontroli dostępu (ACL) i dziennik operacji dyskowych (journal). Maksymalny rozmiar pliku to: * Teoretycznie: 16 EB - 1 kB (264 B - 1 kB) * W implementacji: 16 TB - 64 kB (244 B - 64 kB) Maksymalny rozmiar partycji to: * Teoretycznie: 264 klastrów - 1 klaster * W implementacji: 256 TB - 64 kB (232 klastrów - 1 klaster) Przykładowe możliwości NTFS * journalling - dziennik zmian od v5, * szyfrowanie plików i katalogów - przy pomocy nakładek tworzących EFS - encoded file system - nie jest jednak możliwe zaszyfrowanie partycji systemowej, przechowującej strategiczne informacje rejestrów, * kompresja danych "w locie". ISO 9660 Standard ISO 9660 stworzony został przez Międzynarodową Organizację Standaryzacji (International Organization for Standardization). Standard ten definiuje system plików przeznaczony do płyt CD. Jest to standard obsługiwany przez różne systemy operacyjne takie jak DOS, MS Windows, Mac OS i system UNIX. System plików ISO 9660 jest używany również w nośnikach DVD oraz w nieznacznie zmodyfikowanej wersji w nośnikach Sony UMD. Cześć Jurek Cześć Pony Category:Wrocław University of Technology